package cn.stylefeng.guns.modular.jobTask.pojo.result;

import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
import cn.stylefeng.roses.kernel.sys.modular.org.entity.HrOrganization;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * 任务表实例类
 *
 * @author LiZh
 * @date 2024.07.08
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class JobTaskNodeResult extends BaseEntity implements AbstractTreeNode<JobTaskNodeResult> {

    /**
     * 任务表主键
     */
    @ChineseDescription("任务表主键")
    private Long taskId;

    /**
     * 任务名称
     */
    @ChineseDescription("任务名称")
    private String taskName;

    /**
     * 父id
     */
    @ChineseDescription("父id")
    private Long parentId;

    /**
     * id链条
     */
    @ChineseDescription("id链条")
    private String pids;

    /**
     * 任务信息
     */
    @ChineseDescription("任务信息")
    private String message;

    /**
     * 任务级别
     */
    @ChineseDescription("任务级别")
    private String taskLevel;

    /**
     * 是否完成
     */
    @TableField("complete")
    private Boolean complete;

    /**
     * 截止时间
     */
    @ChineseDescription("截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deadLine;

    /**
     * 是否删除：Y-已删除，N-未删除
     */
    @ChineseDescription("是否删除：Y-已删除，N-未删除")
    private String delFlag;

    private List<JobTaskNodeResult> children;

    public String getNodeId() {
        return this.taskId == null ? null : this.taskId.toString();
    }

    public String getNodeParentId() {
        return this.parentId == null ? null : this.parentId.toString();
    }

    public void setChildrenNodes(List<JobTaskNodeResult> childrenNodes) {
        this.children = childrenNodes;
    }

}